package com.leyou.item.dto;

import com.leyou.common.dto.BaseDTO;
import com.leyou.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)

public class SkuDTO extends BaseDTO {

    private Long id;
    /**
     * spu表的id
     */
    private Long spuId;
    /**
     * 商品sku的标题
     */
    private String title;
    /**
     * 商品的图片，多个图片以‘,’分割
     */
    private String images;
    /**
     * 销售价格，单位为分
     */
    private Long price;
    /**
     * 销量
     */
    private Long sold;
    /**
     * 库存
     */
    private Integer stock;
    /**
     * sku的特有规格参数键值对，json格式 商品特殊规格
     */
    private String specialSpec;
    /**
     * 商品特殊规格的下标
     */
    private String indexes;
    /**
     * 是否上架，0下架，1上架
     */
    private Boolean saleable;

    public SkuDTO(BaseEntity entity) {
        super(entity);
    }

    public static <T extends BaseEntity> List<SkuDTO> convertEntityList(Collection<T> list) {
        if (list == null) {
            return Collections.emptyList();
        }
        return list.stream().map(SkuDTO::new).collect(Collectors.toList());
    }
}
